The present disclosure relates to memory management, and more particularly to error detection and correction in memory.
Generally, a computing device includes a random access memory (RAM) that stores instructions and data for various processes executed by a processor of the computing device. It is possible for content of RAM to become corrupted such that the content of the RAM no longer matches the originally stored value. For example, one or more bits of the RAM may change values. Example causes of corruption include faulty RAM hardware, erroneous operation of hardware or drivers, and cosmic radiation.
Corruption of RAM may lead to catastrophic failures of a computing device such as a system crash and corruption of the operating system or user data. Because RAM may include instructions or pointers to other instructions, a change in a single bit may result in an incorrect instruction being executed. The execution of the incorrect instruction may produce further errors, potentially leading to the catastrophic failure.
One attempt to mitigate RAM corruption is error correcting code (ECC) RAM. ECC RAM is hardware memory that not only stores data, but also stores redundant information and logic for automatically correcting errors in the data. Although ECC RAM is useful for mitigating RAM corruption, the specialized hardware is more expensive than typical RAM and is not often used in consumer grade computer devices.
Thus, there is a need in the art for improvements in memory management for computer devices.